<html>
<head><meta charset="utf-8"><title>lazy normalization in other languages · t-compiler · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/index.html">t-compiler</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/lazy.20normalization.20in.20other.20languages.html">lazy normalization in other languages</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="196826754"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/lazy%20normalization%20in%20other%20languages/near/196826754" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/lazy.20normalization.20in.20other.20languages.html#196826754">(May 07 2020 at 20:34)</a>:</h4>
<p>Does one of you know of other languages which require something similar to lazy normalization?</p>
<p>I am fairly certain they exist but was unable to find anything good myself. <span aria-label="dolphin" class="emoji emoji-1f42c" role="img" title="dolphin">:dolphin:</span></p>



<a name="196837733"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/lazy%20normalization%20in%20other%20languages/near/196837733" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mark-i-m <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/lazy.20normalization.20in.20other.20languages.html#196837733">(May 07 2020 at 22:21)</a>:</h4>
<p>I'm curious if c++ needs it?</p>



<a name="196859092"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/lazy%20normalization%20in%20other%20languages/near/196859092" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/lazy.20normalization.20in.20other.20languages.html#196859092">(May 08 2020 at 05:24)</a>:</h4>
<p>What is Lazy Normalization?</p>



<a name="196859095"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/lazy%20normalization%20in%20other%20languages/near/196859095" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/lazy.20normalization.20in.20other.20languages.html#196859095">(May 08 2020 at 05:24)</a>:</h4>
<p>If it's related to const generics, I bet there must be an extension to Haskell that uses it</p>



<a name="196859161"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/lazy%20normalization%20in%20other%20languages/near/196859161" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/lazy.20normalization.20in.20other.20languages.html#196859161">(May 08 2020 at 05:26)</a>:</h4>
<p>(deleted)</p>



<a name="196859240"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/lazy%20normalization%20in%20other%20languages/near/196859240" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/lazy.20normalization.20in.20other.20languages.html#196859240">(May 08 2020 at 05:28)</a>:</h4>
<p>And if it is indeed related to const generics, maybe something in C++'s STL has something similar?</p>



<a name="196860044"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/lazy%20normalization%20in%20other%20languages/near/196860044" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> csmoe <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/lazy.20normalization.20in.20other.20languages.html#196860044">(May 08 2020 at 05:50)</a>:</h4>
<p><span class="user-mention" data-user-id="212698">@Félix Fischer</span> explanation here <a href="https://github.com/rust-lang/rust/issues/60471" title="https://github.com/rust-lang/rust/issues/60471">https://github.com/rust-lang/rust/issues/60471</a></p>



<a name="196860134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/lazy%20normalization%20in%20other%20languages/near/196860134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/lazy.20normalization.20in.20other.20languages.html#196860134">(May 08 2020 at 05:53)</a>:</h4>
<p>Ohhhh￼￼ okay. Thanks, <span class="user-mention" data-user-id="116773">@csmoe</span>!</p>



<a name="196860190"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/lazy%20normalization%20in%20other%20languages/near/196860190" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/lazy.20normalization.20in.20other.20languages.html#196860190">(May 08 2020 at 05:54)</a>:</h4>
<p>Then maybe the c++ community has something to say about it. How is the STL compiled? Do they use LN, or do they dodge the issue somehow?</p>



<a name="196870293"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/lazy%20normalization%20in%20other%20languages/near/196870293" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> bjorn3 <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/lazy.20normalization.20in.20other.20languages.html#196870293">(May 08 2020 at 08:37)</a>:</h4>
<p>C++ parses templates every time you instantiate them. LN doesn't make sense in the weak template system that doesn't have any such concept as traits.</p>



<a name="196872277"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/lazy%20normalization%20in%20other%20languages/near/196872277" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/lazy.20normalization.20in.20other.20languages.html#196872277">(May 08 2020 at 09:05)</a>:</h4>
<p>Ohhh, so that's how that works. It's much less refined then. Okay. I got nothin' then.</p>



<a name="196872305"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/lazy%20normalization%20in%20other%20languages/near/196872305" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/lazy.20normalization.20in.20other.20languages.html#196872305">(May 08 2020 at 09:05)</a>:</h4>
<p>(Thanks for explaining, bjorn3!)</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>